<?php namespace Admin\Controller;

class CategoryController extends CommonController{
	
	private $model;
	
	public function __construct(){
		parent::__construct();
		$this->model = new \Common\Model\Cate;
	}
	
	public function addCate(){
		if(IS_POST){
			if($this->model->addData())View::success('添加成功！',U('index'));
			View::error($this->model->getError());
		}
		View::make();
	}
	
	public function addSonCate(){
		if(IS_POST){
			if($this->model->addData())View::success('添加成功',U('index'));
			View::error($this->model->getError());
		}
		//因为增加子类页面要显示所属类型 所以要拿到类型表的数据  并分配到页面上
		$typeModel = new \Common\Model\Type;
		$typeData = $typeModel->get();
		View::with('typeData',$typeData);
		View::make();
	}
	
	
	public function editCate(){
		if(IS_POST){
			if($this->model->editData())View::success('编辑成功',U('index'));
			View::error($this->model->getError());
		}
		//拿到要编辑的分类的id
		$cid = Q('get.cid',0,'intval');
		//拿到不属于自己和子类的分类数据
		$cateNameData = $this->model->getNoMy($cid);
		//把拿到的数据按树状排列
		$cateNameData = Data::tree($cateNameData,'cname','cid','pid');
		//分配数据到页面上
		View::with('cateNameData',$cateNameData);
		//拿到要编辑的分类的数据 显示在编辑页面上
		$oldCateData = $this->model->where("cid={$cid}")->find();
		View::with('oldData',$oldCateData);
		//因为编辑分类页面上要显示所属类型 所以取得类型表的数据 如果编辑的是顶级的分类的话 就不显示所属类型 这个在页面判断
		$typeModel = new \Common\Model\Type;
		$typeData = $typeModel->get();
		View::with('typeData',$typeData);
		View::make();
	}
	
	//删除分类
	public function delCate(){
		//获得分类id
		$cid = Q('get.cid',0,'intval');
		//因为删除当前分类 要把他的子一级分类的pid改为要删除的分类的pid 所以要取得要删除的分类的pid
		$data = $this->model->where("cid={$cid}")->find();
		//取得当前分类的pid
		$pid = $data['pid'];
		//更新子一级分类的pid
		$this->model->where("pid={$cid}")->update(array('pid'=>$pid));
		//在数据库删除分类
		$this->model->where("cid={$cid}")->delete();
		View::success('删除成功');
	}
	
	
	public function index(){
		$CateData = $this->model->get();
		//为了在页面显示分类的父子关系 所以要把分类数据按树状排列
		$CateData = Data::tree($CateData,'cname','cid','pid');
		View::with('CateData',$CateData);
		View::make();
	}
}
 ?>